package com.ethink.warehouse.api.enums;

/**
 * 枚举 库存变动科目
 *
 * @author default
 * @date 2022-09-26
 */
public enum SubjectEnum {

    /**
     * 采购入库
     */
    T11("t11", "采购入库"),


    /**
     * 采购退货出库
     */
    T12("t12", "采购退货出库"),

    /**
     * 销售调拨入库
     */
    T21("t21", "销售调拨入库"),


    /**
     * 销售调拨出库
     */
    T22("t22", "销售调拨出库"),

    /**
     * 物流调拨入库
     */
    T31("t31", "物流调拨入库"),


    /**
     * 物流调拨出库
     */
    T32("t32", "物流调拨出库"),

    /**
     * 预售退货入库
     */
    T41("t41", "预售退货入库"),


    /**
     * 预售出库
     */
    T42("t42", "预售出库"),

    /**
     * 批量导入销售退货入库
     */
    T51("t51", "批量导入销售退货入库"),


    /**
     * 批量导入销售出库
     */
    T52("t52", "批量导入销售出库"),

    /**
     * 其他入库
     */
    T61("t61", "其他入库"),


    /**
     * 其他出库
     */
    T62("t62", "其他出库"),

    /**
     * 销售退货入库
     */
    T71("t71", "销售退货入库"),


    /**
     * 销售出库
     */
    T72("t72", "销售出库"),

    /**
     * 矫正入库
     */
    T81("t81", "矫正入库"),


    /**
     * 矫正出库
     */
    T82("t82", "矫正出库"),

    /**
     * 吉客云退货入库
     */
    T91("t91", "吉客云退货入库"),


    /**
     * 吉客云出库
     */
    T92("t92", "吉客云出库"),

    /**
     * 拆卸入库
     */
    T101("t101", "拆卸入库"),


    /**
     * 拆卸出库
     */
    T102("t102", "拆卸出库"),


    /**
     * 货权变更入库
     */
    T111("t111", "货权变更入库"),


    /**
     * 货权变更出库
     */
    T112("t112", "货权变更出库"),

    /**
     * 库存类型转换入库
     */
    T121("t121", "库存类型转换入库"),


    /**
     * 库存类型转换出库
     */
    T122("t122", "库存类型转换出库"),

    /**
     * 其他入库
     */
    T131("t131", "其他入库"),


    /**
     * 其他出库
     */
    T132("t132", "其他出库"),

    ;

    /**
     * 枚举int值
     */
    private String code;

    /**
     * 枚举名称
     */
    private String name;

    /**
     * 构造方法
     *
     * @param code
     * @param name
     */
    SubjectEnum(String code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 枚举int值
     *
     * @return
     */
    public String getCode() {
        return code;
    }

    /**
     * 枚举名称
     *
     * @return
     */
    public String getName() {
        return name;
    }

    /**
     * @param code
     * @return
     */
    public static SubjectEnum valueOfCode(String code) {
        for (SubjectEnum value : SubjectEnum.values()) {
            if (value.getCode().equals(code)) {
                return value;
            }
        }
        return null;
    }
}
